import 'package:flutter/material.dart';

/// 轮播图指示器组件
///
/// 这是一个通用的轮播图指示器组件，用于显示当前轮播图的位置状态
///
/// 参数:
/// - count: 指示器数量，应与轮播图项数量一致
/// - currentIndex: 当前激活的索引，表示当前显示的轮播图项
/// - activeColor: 激活状态颜色，默认为蓝色
/// - inactiveColor: 非激活状态颜色，默认为灰色
class CarouselIndicator extends StatelessWidget {
  /// 指示器总数
  final int count;

  /// 当前激活的指示器索引
  final int currentIndex;

  /// 激活状态颜色
  final Color activeColor;

  /// 非激活状态颜色
  final Color inactiveColor;

  /// 底部间距，默认为20.0
  final dynamic bottomPadding;

  const CarouselIndicator({
    Key? key,
    required this.count,
    required this.currentIndex,
    this.activeColor = Colors.blue,
    this.inactiveColor = Colors.grey,
    this.bottomPadding = 20.0, // 默认20.0的底部间距
  }) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: EdgeInsets.only(bottom: bottomPadding),
      child: Row(
        mainAxisAlignment: MainAxisAlignment.center, // 居中显示
        children: List.generate(count, (index) {
          return Container(
            width: 8.0,  // 指示器宽度
            height: 8.0,  // 指示器高度
            margin: EdgeInsets.symmetric(horizontal: 4.0), // 水平间距
            decoration: BoxDecoration(
              shape: BoxShape.circle, // 圆形指示器
              color: currentIndex == index
                ? activeColor // 当前激活的指示器颜色
                : inactiveColor.withOpacity(0.5), // 非激活指示器颜色(半透明)
            ),
          );
        }),
      ),
    );
  }
}